import { NextApiResponse } from "next";

export interface Response {
    code: number;
    msg: string;
    data: any;
}

export default class R {
    /**
     * 成功返回
     * @param res 响应对象
     * @param data 数据
     */
    static success(res:NextApiResponse,data:any|null=null){
        res.status(200).json({
            code:200,
            msg:'success',
            data
        }) 
    }
    /**
     * 错误返回
     * @param res 响应对象
     * @param msg 错误信息
     */
    static error(res:NextApiResponse,msg:string|null=null){
        if(!msg){
            msg = 'error'
        }
        res.status(200).json({
            code:500,
            msg:msg,
            data:null
        })
    }
    static unauthorized(res:NextApiResponse,msg:string|null=null){
        if(!msg){
            msg = 'unauthorized'
        }
        res.status(401).json({
            code:401,
            msg:msg,
            data:null
        })
    }
    static err(res:NextApiResponse,code:number,msg:string|null=null){
        if(!msg){
            msg = 'failed'
        }
        res.status(200).json({
            code:code,
            msg:msg,
            data:null
        })
    }
    static errWithStatus(res:NextApiResponse,status:number,msg:string|null=null){
        if(!msg){
            msg = 'failed'
        }
        res.status(status).json({
            code:status,
            msg:msg,
            data:null
        })
    }
}   

